package modelo.dao.implementacion;

import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import modelo.dao.VentasDAO;
import modelo.transfer.Cuenta;
import modelo.transfer.Venta;

public class Ventas implements VentasDAO {

	private ArrayList<modelo.transfer.Venta> ventas = new ArrayList<modelo.transfer.Venta>();
	private boolean actualizado = false;

	@Override
	public float hacerCaja() {
		
		
		return 0;
	}

	@Override
	public ArrayList<Venta> consultarVentas() {

		if (actualizado){
			return this.ventas;
		}
		
		String sql = "SELECT * FROM `ventas`";
	
		try {
			ConectorBBDD.iniciarConexion();
			ResultSet rs = ConectorBBDD.realizarConsulta(false, sql);
			
			if (rs != null){
				
				ventas.clear();
				
				do {
					Venta nuevaVenta = new modelo.transfer.Venta(rs.getDate("Fecha"), rs.getInt("Total"));
					ventas.add(nuevaVenta);
				} while (rs.next());
			
				actualizado = true;

				ConectorBBDD.cerrarConexion();
				
				return ventas;
			}			
			

			ConectorBBDD.cerrarConexion();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		return null;
	}

	@Override
	public ArrayList<modelo.transfer.Venta> consultarVentasPorFecha(
			Date fechaInicio, Date fechaFin) {
		
		
		ArrayList<modelo.transfer.Cuenta> cuentas = new ArrayList<modelo.transfer.Cuenta>();
		
		

		ArrayList<modelo.transfer.Venta> ventas = new ArrayList<modelo.transfer.Venta>();
		
		return ventas;
	}

	@Override
	public ArrayList<Cuenta> consultarCuentasDia(Venta venta) {
		ArrayList<modelo.transfer.Cuenta> cuentas = new ArrayList<modelo.transfer.Cuenta>();
		
		String sql = "SELECT * FROM `cuentas` WHERE Fecha="+venta.getFecha();
		
		try {
			ConectorBBDD.iniciarConexion();
			ResultSet rs = ConectorBBDD.realizarConsulta(false, sql);
			
			if (rs != null){
				
				cuentas.clear();
				
				do {
					Cuenta cuentaDia = new modelo.transfer.Cuenta(rs.getDate("Fecha"), rs.getInt("Total"));
					cuentas.add(cuentaDia);
				} while (rs.next());

				ConectorBBDD.cerrarConexion();
				
				return cuentas;
			}			
			

			ConectorBBDD.cerrarConexion();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}

	
	
	
}
